home *** CD-ROM | disk | FTP | other *** search
- #include "ReadPicture.h"
-
- PicHandle ReadPicture(FSSpec *pictFile) {
- PicHandle thePic;
- short fileRefNum;
- OSErr myErr;
- long picSize;
-
- myErr = FSpOpenDF(pictFile, fsCurPerm, &fileRefNum);
- if (myErr != noErr) {
- SysBeep(10);
- return(NULL);
- }
-
- myErr = GetEOF(fileRefNum, &picSize);
- if (myErr != noErr) {
- SysBeep(10);
- return(NULL);
- }
-
- picSize -= 512; // Don't include pict file header data
- thePic = (PicHandle)NewHandle(picSize);
- if (thePic == NULL)
- return(NULL);
- HNoPurge((Handle)thePic);
-
- myErr = SetFPos(fileRefNum, fsFromStart, 512);
- if (myErr != noErr) {
- SysBeep(10);
- return(NULL);
- }
-
- HLock((Handle)thePic);
- myErr = FSRead(fileRefNum, &picSize, (Ptr)*thePic);
- if (myErr != noErr) {
- SysBeep(10);
- return(NULL);
- }
- HUnlock((Handle)thePic);
-
- myErr = FSClose(fileRefNum);
- if (myErr != noErr) {
- SysBeep(10);
- return(NULL);
- }
-
- return(thePic);
- } // END ReadPicture